// vip/vip.js
const api = require("../../request/api")
const request = require("../../request/request")
const util = require("../../utils/util")
const App = getApp();

// 默认头像地址，png灰色头像 120*120像素
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0';

// jpeg灰色头像 132*132像素
// const defaultAvatarUrl = 'https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132',

Page({

    /**
     * 页面的初始数据
     */
    data: {
        barHeight: App.globalData.paddingTop,

        avatarUrl: defaultAvatarUrl,
        nickName: '游客',
        // 修改模态框的头像
        oldAvatarUrl: defaultAvatarUrl,
        // 微信验证后的头像临时地址
        temAvatarUrl: '',
        temNickName: '',

        if_register: false,
        islogin: false,
        uid: '',
        user_info: null,
        more_list: [],

        // 存储其他页面传入的onLoad钩子函数的 options
        options: {},

        styledata: {
            "bg_color": "#fff",
            "color": "#fff",
            "leftflag": true,
            "homeflag": true,
            "name": "个人中心"
        },

        // 模态框y轴移动距离
        moveNum: '-205%'
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        this.init_data(options)
    },

    // 自定义初始化data方法
    init_data(options) {
        this.setData({
            islogin: App.globalData.islogin,
            uid: App.globalData.uid,
            options,
        })

        // 判断是否有头像地址和昵称，方便页面渲染
        let userInfo = App.globalData.fulluserInfo
        if (userInfo) {
            let nickName = userInfo.name
            let avatarUrl = userInfo.avatar

            // 同时设置模态框头像昵称值
            if (avatarUrl != '') {
                this.setData({ avatarUrl, oldAvatarUrl: avatarUrl })
            }
            if (nickName) {
                this.setData({ nickName, temNickName: nickName })
            }
        }
    },

    setDefaultAvatar() {
        this.setData({
            avatarUrl: defaultAvatarUrl
        })
    },

    setDefaultAvatar2() {
        this.setData({
            oldAvatarUrl: defaultAvatarUrl
        })
    },

    // 弹出头像昵称修改模态框
    async showModal() {
        if (!this.data.uid) {
            let result = await this.check_login()
            // let result = await App.gologin()
            if (result) {
                this.setData({
                    moveNum: '-50%'
                })
            }
        } else {
            // 如已登录直接弹出修改框
            this.setData({
                moveNum: '-50%'
            })
        }

    },

    // 取消修改 关闭模态框
    closeModal() {
        this.setData({
            moveNum: '-205%',
            oldAvatarUrl: this.data.avatarUrl,
            temNickName: this.data.nickName,
            temAvatarUrl: ''
        })
    },

    // 点击模态框头像进行弹出修改
    onChooseAvatar(e) {
        let that = this
        const { avatarUrl } = e.detail
        // console.log(e);
        that.setData({
            oldAvatarUrl: avatarUrl,
            temAvatarUrl: avatarUrl
        })
    },

    inputBlur(e) {
        this.setData({
            temNickName: e.detail.value
        })
    },

    // 确认修改头像或昵称回调
    confirmUpdate() {
        //  wx.uploadFile中读取不到页面实例，无法调用对应方法，需要先保存this 
        const that = this

        // 无修改做提示
        if (this.data.oldAvatarUrl == this.data.avatarUrl && this.data.temNickName == this.data.nickName) {
            wx.showToast({
                title: '请修改后提交',
                duration: 1500,
                icon: 'none'
            });
            return
        }

        // 修改头像
        if (this.data.oldAvatarUrl != this.data.avatarUrl) {
            //临时图片路径上传到服务器,并且再发第二次请求设置为用户头像
            wx.uploadFile({
                url: api.upload_photo, // 已切换韦总接口真实地址
                filePath: this.data.oldAvatarUrl, // 微信给的临时地址，并非真正图片的路径
                name: 'imgFile',
                success(res) {
                    // console.log(res);
                    const data = JSON.parse(res.data)
                    if (data.code == 0) {
                        // that.set_avatar(data.data.url)
                        that.set_avatar(data.data.img)

                        util.showToast("头像保存成功")
                    } else {
                        util.showToast("头像保存失败！")
                    }

                    // 同时修改了昵称
                    if (that.data.temNickName != that.data.nickName) {
                        that.updateNickName()
                    }
                    that.setData({
                        moveNum: '-205%',
                    })
                    // 更新
                    that.checkLoign()
                },
                fail(err) {
                    console.log(err);
                }
            })
        }
        // 修改昵称
        else {
            that.updateNickName()
            // 更新
            that.checkLoign()
            that.setData({
                moveNum: '-205%',
            })
        }



    },

    // 登录获取最新用户数据
    checkLoign() {
        const that = this
        return new Promise((resolve, reject) => {
            wx.login({
                success: res => {
                    let params = {
                        code: res.code
                    }
                    request.post(api.login, params).then(res => {
                        // console.log(res); // res直接就是 userInfo对象
                        App.globalData.islogin = true
                        App.globalData.uid = res.uid
                        App.globalData.userInfo = res
                        wx.setStorageSync('islogin', true)
                        wx.setStorageSync('uid', res.uid)
                        wx.setStorageSync('userInfo', res)
                        that.setData({
                            islogin: App.globalData.islogin,
                            uid: App.globalData.uid,
                            // avatarUrl: "http://img.qian.gzzsu.com/" + res.avatarUrl || defaultAvatarUrl,
                            avatarUrl: res.fullAvatar || defaultAvatarUrl,

                            // oldAvatarUrl: "http://img.qian.gzzsu.com/" + res.avatarUrl || defaultAvatarUrl,
                            oldAvatarUrl: res.fullAvatar || defaultAvatarUrl,


                            nickName: res.nickName || '微信用户',
                            temNickName: res.nickName || '微信用户'

                        })

                        App.getMyFullInfo()
                        // 结束加载状态
                        util.hideLoading()
                        resolve(true)
                    })
                },
                fail: res => {
                    console.log(res);
                    // 结束加载状态
                    util.hideLoading()
                    reject(false)
                }
            })
        })
    },

    // 提示用户是否登录
    check_login() {
        const that = this
        return new Promise((resolve, reject) => {
            wx.showModal({
                title: '提示',
                content: '您需要先进行登录',
                async success(res) {
                    if (res.confirm) {
                        util.showLoading('登录中')
                        let loginRes = await that.checkLoign()
                        if (loginRes) {
                            // 异步输出用于判断
                            resolve(true)
                        } else {
                            reject(false)
                        }

                    } else if (res.cancel) {
                        console.log('用户点击取消')
                        reject(false)
                    }
                }
            })
        })

    },

    // 如果是新用户 调用使用默认头像和昵称
    get_user_profile() {
        const that = this
        wx.getUserProfile({
            desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
            success: res => {
                console.log(res);
                wx.setStorageSync('userInfo', res.userInfo)
                wx.setStorageSync('islogin', true)
                that.init_data(that.data.options)
            },
            fail: res => {
                console.log(res);
            }
        })
    },

    // 将上传的图片设置为用户头像
    set_avatar(avatar) {
        let params = { "uid": this.data.uid, "img": avatar }
        request.post(api.set_avatar, params).then(res => {
            if (res) {
                console.log('头像设置成功')
            } else {
                console.log('头像设置失败')
            }
        })
    },

    // 修改昵称
    async updateNickName() {
        let params = { uid: this.data.uid, name: this.data.temNickName }
        let updateRes = await request.post(api.setName, params)
        if (!updateRes) {
            wx.showToast({
                title: '昵称修改失败',
                duration: 1500,
                icon: 'error'
            });
            return
        }
    },

    go_home() {
        wx.switchTab({
            url: '/pages/home/home',
        })
    },

    go_vip() {
        wx.navigateBack({
            delta: 1
        })
    },

    async cart_add() {
        util.showLoading("正在添加")
        let params = {
            // goods_num: this.data.cart_num,
            goods_id: this.data.goods_id,
            uid: this.data.uid
        }
        let res = await request.post(api.cart_add, params)
        if (res) {
            let cartRes = await request.post(api.cart_list, { uid: this.data.uid })
            // console.log(cartRes);
            App.globalData.cartnum = cartRes.total_goods_nums
        }
        this.setData({
            if_show_box: false
        })
        util.showToast("已加入购物车")

    },

    go_buy_vip() {
        // if (!this.data.if_register) {
        //   util.showToast("请先登录")
        //   return
        // }
        let url = '/vip/buy_vip'
        wx.navigateTo({
            url,
        })
    },


    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})